home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-10-04 | 1.3 KB | 75 lines | [TEXT/PJMM] |
- unit Eval;
-
-
- interface
-
-
- uses
- ParserGlobals, Operations, LexicalAnalysis, Parser, SetValues, EvaluateNodes, CheckLine;
-
-
- function eval (var line: str255): str255;
-
-
- implementation
-
-
- function eval;
-
-
- label
- 999;
-
- var
- removeblanks: boolean;
- ntot, numnodes: integer;
- sy, tokentype, ty, tytokentype: hdlstringarray0;
- pr: hdlintarray0;
- t: hdlextendarray;
-
- begin
-
- sy := hdlstringarray0(NewHandle(SizeOf(stringarray0)));
- ty := hdlstringarray0(NewHandle(SizeOf(stringarray0)));
- tokentype := hdlstringarray0(NewHandle(SizeOf(stringarray0)));
- tytokentype := hdlstringarray0(NewHandle(SizeOf(stringarray0)));
- pr := hdlintarray0(NewHandle(SizeOf(intarray0)));
- t := hdlextendarray(NewHandle(SizeOf(extendarray)));
-
- removeblanks := true;
- lexicalanalysis(line, removeblanks, ntot, sy, tokentype, pr, error);
-
- if error <> '' then
- begin
- eval := error;
- goto 999;
- end;
-
- checkline(ntot, sy, tokentype, pr, numnodes, t, error);
-
- if error <> '' then
- begin
- eval := error;
- goto 999;
- end;
-
- if numnodes <= 0 then
- begin
- eval := '';
- goto 999;
- end;
-
- eval := stringof(t^^[numnodes] : decplaceplus10 : decplace);
-
- DisposHandle(handle(sy));
- DisposHandle(handle(ty));
- DisposHandle(handle(tokentype));
- DisposHandle(handle(tytokentype));
- DisposHandle(handle(pr));
- DisposHandle(handle(t));
-
-
- 999:
- end;
-
- end.